使用 Windows PowerShell 可以查詢執行中的處理序、啟動或停止處理序。
Windows PowerShell 提供一組與 Process 相關的 cmdlet 來管理處理序。
查詢處理序
查詢本機電腦上執行中的處理序,就直接執行 Get-Process 即可。有時候我們只要找出特定處理序的名稱或某個 ID 的處理序,可使用下面的指令:
# 查詢處理序名稱開頭是 ie、ex 跟 pow
Get-Process -Name ie*, ex*, pow*
# 因為 Name 參數是預設的屬性,所以也可改用這樣的方式
Get-Process ie*, ex*, pow*
# 查詢處理序 ID 為 1900
Get-Process -id 1900
附註:
Get-Process 搭配 ComputerName 參數可查詢執行於遠端電腦上的處理序。
停止處理序
Stop-Process cmdlet 會使用 Name 或 Id 來指定所要停止執行於本機電腦上,一或多個處理序。請特別注意,是否可以真的停止處理序,要看您否有權限去執行該項工作以及該處理序是否允許被停止(因為有些處理序是不允許停止的)。
以下面的程式碼為例,會停止處理序名稱為 iexplore:
Stop-Process -Name iexplore
要停止處理序當然也可以使用 Name 參數搭配萬用字元,然而為了避免意外停止原本沒有打算要停止,卻但符合條件的某些處理序,就可再加上 Confirm 參數:
PS C:\> Stop-Process -Name ie*, ex*, pow* -Confirm
確認
確定要執行此動作?
在 "explorer (2464)" 目標上執行 "Stop-Process" 作業。
[Y] 是(Y) [A] 全部皆是(A) [N] 否(N) [L] 全部皆否(L) [S] 暫停(S) [?] 說明 (預設值為 "Y"):
...
有時候,某些應用程式會停止回應,也可藉由判斷 Process 物件的 Responding 屬性值為 false,來找出不再有回應的處理序,然後將其停止:
Get-Process | Where-Object -FilterScript {$_.Responding -eq $false} | Stop-Process
啟動處理序
使用 Start-Process 可在本機電腦上執行處理序。可以輸入可執行檔、指令碼,或者是用電腦中程式可開啟的檔案(簡單的說法,就是 Start-Process 會啟動與該檔案關聯的程式)。以下面的程式碼來說,會啟動 WordPad,並將其開啟成最大化的模式:
Start-Process wordpad -WindowStyle Maximized
附註:
使用 Start-Process 執行本機處理序,不需要檢查要被執行的程式之目錄是否名列於 Path 環境變數裡。可參考先前討論過的:Windows PowerShell 基本操作 - 執行 Windows 的程式。
下面的程式碼會使用與 jpg 關聯的程式來進行列印
Start-Process "C:\Users\Public\Pictures\Sample Pictures\Koala.jpg" -Verb Print